1. Field of the Invention
Example embodiments of the present invention relate to apparatuses and methods for checking integrity of transmission data, for example, an apparatus and method for generating a universal CRC/checksum.
2. Description of the Related Art
Methods of detecting and/or correcting transmission errors generated during data transmission has been continuously developed to improve accuracy, efficiency, and/or to increase speed. Conventionally, a cyclic redundancy check (CRC) scheme and/or a checksum scheme have been used to detect and correct transmission errors.
According to a conventional checksum scheme, a receiver may count the number of bits in a unit of transmitted data in order to determine whether same number of bits having a value of 1 have been received at a receiver. If the same number of bits having a value of 1 have been received, the receiver determines that no transmission errors have occurred.
The CRC scheme is used, for example, in a digital data communication. A transmitter may consider transmission data as a polynomial expression and may generate a cyclic redundancy code (CRC) by using a polynomial expression. For example, a bit value or reminder is calculated using the polynomial expression and data to be transmitted. The calculated reminder may be appended to the data as a CRC, and the transmitter transmits the data with the CRC to a receiver. The receiver receives the transmitted data and determines whether transmission errors have occurred using the same polynomial expression used to generate the CRC at the transmitter. For example, the receiver calculates a reminder using the same polynomial expression and the received data. If the calculated reminder is 0, the receiver determines that no errors have occurred. If the reminder is not 0, the receiver determines that errors have may be included in the received data.
A CRC/checksum calculating unit may be implemented as hardware to calculate the CRC or the checksum. The CRC calculating unit may include a shift register and an exclusive logic sum gate. Since an arrangement of the shift register and the exclusive logic sum gate in the CRC calculating unit is determined according to the polynomial expression, the CRC calculating unit may not be modified after the CRC calculating unit is manufactured. Therefore, CRC calculating unit may be designed and/or manufactured differently according to polynomial expressions used in the transmitter and/or the receiver. Additionally, the transmitter and the receiver must have a CRC calculating unit employing a same polynomial expression.
In order to apply various polynomial expressions dynamically a software CRC calculating unit may be used. Such a software CRC calculating unit may be implemented into various transmitters and/or receivers employing different polynomial expressions by interchanging programs and/or data of the software CRC calculating unit. However, this may result in increase work load allocated to a processor of a communication terminal because the conventional software CRC calculating unit uses the processor of the communication terminal to perform necessary operations for calculating the CRC, and thus, may degrade performance of the communication terminal. Additionally, the software CRC calculator may have slower calculation speed and/or may not be suitable for high-speed communication.